/*
 * 文件名： EncryptTag.java
 * 
 * 创建日期： 2016年11月24日
 *
 * Copyright(C) 2016, by <a href="mailto:liws@xingyuanauto.com">liws</a>.
 *
 * 原始作者: liws
 *
 */
package com.moli.iov.protocol.enums;


/**
 * 车联网通信协议  数据加密方式标识
 *
 * @author <a href="mailto:liws@xingyuanauto.com">liws</a>
 *
 * @version $Revision$
 *
 * @since 2016年11月24日
 */
public enum EncryptTag implements IDictsEnumTag {
	/**
	 * 不加密
	 */
	NO_ENCRYPT("不加密", (byte) 0x01),
	/**
	 * RSA加密
	 */
	RSA_ENCRYPT("RSA加密", (byte) 0x02), 
	/**
	 * AES128加密
	 */
	AES128_ENCRYPT("AES128加密",
			(byte) 0x03), 
	/**
	 * 异常
	 */
	ERROR_ENCRYPT("异常", (byte) 0xFE), 
	/**
	 * 无效
	 */
	INVALID_ENCRYPT("无效", (byte) 0xFF);

	private EncryptTag(String key, byte value) {
		this.k = key;
		this.v = value;
	}

	private String k;

	private byte v;
	/**
	 * 返回枚举实体
	 *
	 */
	public EncryptTag valueOf(byte value) {
		switch (value) {
		case 0x01:
			return NO_ENCRYPT;
		case 0x02:
			return RSA_ENCRYPT;
		case 0x03:
			return AES128_ENCRYPT;
		case (byte) 0xFE:
			return ERROR_ENCRYPT;
		case (byte) 0xFF:
			return INVALID_ENCRYPT;
		default:
			return null;
		}
	}
	
	public static String getKey(byte value) {
		for (EncryptTag c : EncryptTag.values()) {
			if (c.getV() == value) {
				return c.k;
			}
		}
		return null;
	}

	@Override
	public String getK() {
		return k;
	}

	@Override
	public byte getV() {
		return v;
	}

}
